import tensorflow as tf
import os
from common import show_picture

if __name__ == '__main__':
    os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2'
    image_path = './lenna.png'

    # 读取图片数据
    image = tf.io.read_file(image_path)
    image = tf.image.decode_png(image)

    show_picture(image, 'lenna.png')

    # 转换图片数据类型为浮点数
    float_image = tf.image.convert_image_dtype(image, tf.float32)

    # 填充图片
    # resize_with_pad_image = tf.image.resize_with_pad(float_image, 1024, 1024)
    # 统一调整成一样的大小，有的是缩小，有的填充。
    # resize_with_pad_image = tf.image.resize_with_crop_or_pad(float_image, 1024, 1024)
    # 对于输入大于输出的情况，使用中心剪裁，对于输入小于输出的情况，在图片的四周进行填充。
    resize_with_pad_image = tf.image.resize_with_crop_or_pad(float_image, 256, 256)

    show_picture(resize_with_pad_image, 'resize_with_pad_image_lenna.png')

    # 转换图片数据类型为整数
    resize_with_pad_image = tf.image.convert_image_dtype(resize_with_pad_image, tf.uint8)
    # 将图像数据进行编码
    resize_with_pad_image = tf.image.encode_png(resize_with_pad_image)
    # 将编码后的数据保存到文件
    tf.io.write_file('resize_with_pad_image_lenna.png', resize_with_pad_image)

